package wojtek.ckm;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

import com.jgoodies.forms.layout.FormLayout;
import com.jgoodies.forms.layout.ColumnSpec;
import com.jgoodies.forms.layout.RowSpec;
import com.jgoodies.forms.factories.FormFactory;
import javax.swing.JLabel;
import javax.swing.JButton;
import javax.swing.JList;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JTextField;

public class DruzynaGUI extends JFrame {

	private JPanel contentPane;
	private JTextField textField;
	private JTextField textField_1;
	private JTextField textField_2;
	private JTextField textField_3;
	private JTextField textField_4;

	/**
	 * Launch the application.
	 */


	/**
	 * Create the frame.
	 */
	public DruzynaGUI(final Druzyna druzyna) {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 460, 385);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(new FormLayout(new ColumnSpec[] {
				FormFactory.RELATED_GAP_COLSPEC,
				FormFactory.DEFAULT_COLSPEC,
				FormFactory.RELATED_GAP_COLSPEC,
				ColumnSpec.decode("default:grow"),
				FormFactory.RELATED_GAP_COLSPEC,
				FormFactory.DEFAULT_COLSPEC,},
			new RowSpec[] {
				FormFactory.RELATED_GAP_ROWSPEC,
				FormFactory.DEFAULT_ROWSPEC,
				FormFactory.RELATED_GAP_ROWSPEC,
				FormFactory.DEFAULT_ROWSPEC,
				FormFactory.RELATED_GAP_ROWSPEC,
				FormFactory.DEFAULT_ROWSPEC,
				FormFactory.RELATED_GAP_ROWSPEC,
				FormFactory.DEFAULT_ROWSPEC,
				FormFactory.RELATED_GAP_ROWSPEC,
				FormFactory.DEFAULT_ROWSPEC,
				FormFactory.RELATED_GAP_ROWSPEC,
				FormFactory.DEFAULT_ROWSPEC,
				FormFactory.RELATED_GAP_ROWSPEC,
				FormFactory.DEFAULT_ROWSPEC,
				FormFactory.RELATED_GAP_ROWSPEC,
				FormFactory.DEFAULT_ROWSPEC,
				FormFactory.RELATED_GAP_ROWSPEC,
				FormFactory.DEFAULT_ROWSPEC,
				FormFactory.RELATED_GAP_ROWSPEC,
				FormFactory.DEFAULT_ROWSPEC,
				FormFactory.RELATED_GAP_ROWSPEC,
				FormFactory.DEFAULT_ROWSPEC,
				FormFactory.RELATED_GAP_ROWSPEC,
				FormFactory.DEFAULT_ROWSPEC,
				FormFactory.RELATED_GAP_ROWSPEC,
				RowSpec.decode("default:grow"),}));
		
		JLabel lblNewLabel = new JLabel("Nazwa druzyny: " + druzyna.getNazwa());
		contentPane.add(lblNewLabel, "4, 2");
		
		JLabel lblZawodnik = new JLabel("Zawodnik:");
		contentPane.add(lblZawodnik, "4, 8");
			
		JLabel lblImie = new JLabel("Imie");
		contentPane.add(lblImie, "2, 10, right, default");
		
		textField = new JTextField();
		contentPane.add(textField, "4, 10, fill, default");
		textField.setColumns(10);
		
		JLabel lblNazwisko = new JLabel("Nazwisko");
		contentPane.add(lblNazwisko, "2, 12, right, default");
		
		textField_1 = new JTextField();
		contentPane.add(textField_1, "4, 12, fill, default");
		textField_1.setColumns(10);
		
		JLabel lblNumer = new JLabel("numer");
		contentPane.add(lblNumer, "2, 14, right, default");
		
		textField_2 = new JTextField("1");
		contentPane.add(textField_2, "4, 14, fill, default");
		textField_2.setColumns(10);
		
		JLabel lblSila = new JLabel("sila");
		contentPane.add(lblSila, "2, 16, right, default");
		
		textField_3 = new JTextField("1");
		contentPane.add(textField_3, "4, 16, fill, default");
		textField_3.setColumns(10);
		
		JLabel lblSzybkosc = new JLabel("technika:");
		contentPane.add(lblSzybkosc, "2, 18, right, default");
		
		textField_4 = new JTextField("1");
		contentPane.add(textField_4, "4, 18, fill, default");
		textField_4.setColumns(10);
		
		final JList lista = new JList();
		contentPane.add(lista, "4, 22, fill, fill");
		
		lista.addListSelectionListener(new ListSelectionListener(){

			@Override
			public void valueChanged(ListSelectionEvent e) {
if (e.getValueIsAdjusting() == false){

	int numer = lista.getSelectedIndex();

	textField.setText(druzyna.zwrocZawodnika(numer).getImie());
	textField_1.setText(druzyna.zwrocZawodnika(numer).getNazwisko());
	textField_2.setText(String.valueOf(druzyna.zwrocZawodnika(numer).getNumer()));
	textField_3.setText(String.valueOf(druzyna.zwrocZawodnika(numer).getStrzal()));
	textField_4.setText(String.valueOf(druzyna.zwrocZawodnika(numer).getTechnika()));
	
}
			}
		});
		
		
		
		
		JButton btnCzysc = new JButton("czysc");
		contentPane.add(btnCzysc, "4, 20");
		
		JButton btnDodajZawodnika = new JButton("dodaj zawodnika");
		contentPane.add(btnDodajZawodnika, "6, 20");

		btnDodajZawodnika.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
			System.out.println("zawodnik");
			
			dodajZawodnik(druzyna);
			lista.setListData(druzyna.getDruzyna());

			}
		});
		
		
		JButton btnEdytujZawodnika = new JButton("edytuj zawodnika");
		contentPane.add(btnEdytujZawodnika, "4, 24");
		btnEdytujZawodnika.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
	
		
				edytujDruzyna(druzyna.zwrocZawodnika(lista.getSelectedIndex()));

			}});
		
		
		
		JButton btnUsun = new JButton("usun");
		contentPane.add(btnUsun, "6, 24");
		btnUsun.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
	
		usunDruzyna(druzyna, lista);
		lista.setListData(druzyna.getDruzyna());

			}});
		
	}
	

	public void dodajZawodnik(Druzyna druzyna){
		Zawodnik zawodnik = new Zawodnik(textField.getText(), textField_1.getText(), Integer.parseInt(textField_2.getText()), Integer.parseInt(textField_3.getText()), Integer.parseInt(textField_4.getText()));
		druzyna.dodajZawodnika(zawodnik);
	}
	
	
	
	
	public void usunDruzyna(Druzyna druzyna, JList list){
		System.out.println(list.getSelectedIndex());

		int usuwanyZawodnik = list.getSelectedIndex();
		druzyna.usunZawodnika(usuwanyZawodnik);
	}
	
	public void edytujDruzyna(final Zawodnik zawodnik){
	
	textField.setText(zawodnik.getImie());
	textField_1.setText(zawodnik.getNazwisko());
	}
}
